package fido.torrentsite;

import fido.Torrent;
import fido.exceptions.IncorrectCookieException;
import fido.exceptions.NotConfiguredException;
import org.mymediadb.api.mmdb.model.Movie;

public interface TorrentSite {
    /**
     * @return an Alias for the torrentSite
     */
    String getTorrentSiteAlias();

    /**
     * Search the internet for a movie
     *
     * @param movie the movie to search for
     * @return a Torrent with the movie it was searched for
     * @throws NotConfiguredException   if the TorrentSite was not configured properly
     * @throws IncorrectCookieException if the TorrentSite was configured with an invalid cookie
     */
    Torrent search(Movie movie);


    void configureWithGUI();

    void configureWithTUI();

    boolean isConfigured();

}
